
const jwt = require("jsonwebtoken");



const Service = require('egg').Service;

//服务模板
//使用方法: 在控制器中 await ctx.service.functionService.XXX(); //serviceM是本服务的文件名 ,TEST是方法
//非异步的则 不要加 async 调用 不用加 await
/**
 * 此服务只操作数据,不处理数据库
 */
class functionService extends Service {
    // JWT_SECRE_TKEY;
  constructor(ctx) {
    super(ctx);  
    this.JWT_SECRE_TKEY='ABC123'  
  }
  
  jwtSign(id,timeLong){ //不用此
    //  console.log(id,userName)
    let timestr='7days';//默认7天
    if(timeLong){
      timestr=timeLong*60+'s';
    }
    console.log("时间",timestr);

   const token = jwt.sign(
        {
          user_id: id,
          // userName: userName
        },
            this.JWT_SECRE_TKEY,
        {
          expiresIn: timestr //2days
          // algorithm: 'RS256'
        }
      );
       
    return token;
}
  async jwtVerify(token) {
    const tokenContent = await jwt.verify(token, this.JWT_SECRE_TKEY); //this.ctx.JWT_SECRE_TKEY  如果token过期或验证失败，将抛出错误
    console.log("验", tokenContent )
    return tokenContent;
  }
}

module.exports = functionService;